This invention relates to communication over networks, including internetworks and intranetworks. More particularly, this invention relates to the routing of communication fra such networks.
FIG. 1 is an illustration of a typical communications internetwork 100 of the prior art. In FIG. 1, processors 110a, 110b, . . . , 110n interconnect by means of the network 120. I/O controllers 130a, 130b, . . , 130n also connect to the network 120.
Within their respective processors 110, I/O processes are the initial consumers of the data transported over the network 120.
Processors 111a, 111b, . . . , 111n and the network 120 connect to the internetwork 121 by means of the gateways 131 and 130, respectively.
In the multiprocessor systems available from the assignee of the instant invention, constituent processors 110a-n cooperate to distribute the workload among themselves. The I/O processes are ordered such that one such process is designated the primary I/O process. Each of the controllers 130 communicates frames from the network 120 directly to only (the processor 110a, for example, running) that primary I/O process. The primary I/O process has the responsibility to determine the actual destination processor 110a-n of a frame and to forward that frame from its processor 110a to the destination processor 110b-n. Processor-to-processor copying effects the forwarding.
Funneling all frames to the processor 110a of the primary I/O process places a significant burden on that processor 110a. Further, assuming that the actual destinations of the frames are evenly distributed among the processors 11a-n of the multiprocessor system 100, at least one-half of the frames forwarded to the processor 110a of the primary I/O process must be subjected to an inter-processor copy, tying up the resources of both the primary I/O processor 110a and the destination processor 110b-n, as well as the network 120. As the number of processors in the multiprocessor system increases beyond two, the percentage of frames subject to an inter-processor copy increases.
Further, a clustered system or even a replicated shared-memory multiprocessor (SMP) system appears to be many servers to the outside, reducing the quality of service perceived by consumers of the service. SMPs also have limits to growth, leading to replication and its attendant cost of replicated content.
Therefore, there is a need for a computer system which takes advantage of the better scaling capabilities of a clustered system, avoiding the extra overhead of copying data between processors due to the lack of shared memory.
Accordingly, a goal of the invention is to allow a clustered system to appear as a single system to clients interfacing to it using standard Internet protocols (e.g., TCP/IP, IJDP/IP)
Another goal is to allow multiple interfaces (LAN, ATM, etc.) to a system to transparently appear to devices external to the system as a single internetwork address. For example, the interfaces could appear as a single address according to the Internet Protocol (IP) standards. (Widely known in the art, the IP, TCP and UDP standards are available, for example, at http://www.pmg.lcs.mit.edu/rfc.html as Requests for Comments (RFCs) 791, 793 and 768. RFCs 791, 793 and 768.)
Yet another goal is to distribute data directed to a specific interface (LAN, ATM, etc.) across more than one processor in a cluster, without the data first traveling through another processor.
Another object is a flexible data distribution method, permitting distribution at least at the level of a TCP/IP socket or its equivalent.
Still another object is to achieve the above objects without any changes to clients interfacing to the system by means of Internet protocols.
According to one aspect of the invention, a cluster of processors is connected to a network by a network adapter and the cluster is assigned a single network address. When a client requests a connection to a particular port on one of the processors the network adapter is configured to directly route packets to the processor owning the port. Thus, routing all packets through one processor is avoided.
According to another aspect of the invention, the multiple processors of a cluster are presented as a single virtual host to a network. The processors are communicatively coupled among (i.e., xe2x80x9cbetweenxe2x80x9d or xe2x80x9camongxe2x80x9d) themselves and to a network adapter. The network adapter is communicatively coupled to the network. One of the processors is designated a primary parallel I/O processor.
According to another aspect of the invention, one address is advertised on said network for said multiple processors, and the network adapter is directed to forward packets from the network addressed to that address to the primary parallel I/O processor. Later, the network adapter is directed to forward a specific subset of the packets directly to a particular processor.
According to another aspect of the invention, the directing of the network adapter is accomplished with filter trees.
The invention achieves the degree of data sharing possible in a SMP and allows SMP economics but with much greater scalability. It also allows a single clustered system to economically address large servers for the Internet, eliminating the classic problem of replication of servers and content, and the transmission of multiple server names to which to retry multiple attempts to connect.
A system embodying the invention can distribute incoming data among the multiple processors of a cluster without inter-processor copying. Further, a fat pipe will not overwhelm any individual processor. The invention applies the pipe to the whole cluster.